ライティングとRealtime GIの話


概要

Unity5でのライティングとRealtime GIの話 by けいじろうせんせい。

なんとなく使えてるけどこの設定あってるのか? を解消していくお話。



ライティングの新機能

Ambientの強化があった。


Skyboxと太陽

Skyboxのプロシージャルが可能になった。

Skyboxを作って、Sunのところに特定のDirectionalLightをセットすることができる。


パノラマからCubemapを作る

HDRから読むことができるんで、.hdr拡張子の画像を放り込む→TextureのタイプをCubeMapに変更、という感じ。

あとはLighting > CubeMapの読み込みで、あっという間に。



CastShadows

Two Sided

洞窟とかでポリゴン一枚でも影が落ちる。いままで両面ポリゴン貼ったりしてたのが不要に。

ソフトシャドウの角度

設定できるっぽい。


アーティファクト(平面に発生するモアレというか、ねんりんみたいな奴)を消す

バイアス方式

影のオフセットをずらす→やりすぎると影がオブジェクトから離れる


ノーマルバイアス方式

オブジェクトを逆の法泉方向で小さくして、そこから影を出す→やりすぎるとオブジェクトに隙間ができたような影が出る


それぞれ使って効果がある場所が違うのでいろいろ試そうな



ここからRealtime GIの話

UnityのGIは、固定物の描画に対して、どのくらいなにが反射するか、を計算するもの、

なので、staticなオブジェクトに対してstaticフラグをセットすればGIが有効になる。


ダイナミック(非static)なおっさんとかにGIを適応させるには、LightProbeを光源が変化しそうな場所に置く。これで、GIの影響(間接光)がstaticでない物体にも反映される。


Specular、テカテカしたものに対するGIは、ReflectionProbeを置くことで対応。

なんもしないと、「あれっ天井がある空間なのにブレスレットが青く光るぞ、、、?!」みたいな目にあう。

それは天井の向こうの空(CubeMapとか)が写り込んでるんだぜっていう話。


DirectionalMode

物理ベースレンダリングのUnity5のデフォルトだと、どの程度光るのか、という情報のみが入ってる。

で、DirectionalModeの設定を調整すると、追加情報として方向の情報が追加され、

反射光が当たる物体の法線を生かしたライティングが行われる。


Directional Specularにすると、さらにSpecularの情報を追加することができる。


ただし、Directional、Directional Specularだと、代表的な光のみを考慮する仕掛けになっているので、複数光源には対応できない。そのへんはLightProbeとかで対応するといいのでは



ReflectionProbeのオプション

CubeMapの角またぎをやわらかーいものにする。

具体的には環境テクスチャの切り替えが透明度付きアニメーションみたいになる。



反射の反射についてのオプション

メタル球を並べると、お互いに映り込む球は「真っ黒で描画される」。

リフレクションの回数を指定できる。


このへん紙にコピックとかで車のレンダリングしてた身としては身震いする感じ。トラウマで。



BoxProjection

箱の範囲に物体があるという前提であれば、無限遠のCubeMapよりは素敵な見た目ができる。モバイルでは使えない。




ざっくり書き起こしまでに。

けいじろう先生の話はとても「効果の説明」と「原理の説明」のバランスがいいので、

NHKあたりで毎週やってくれないだろうか。


課金してしまいたい。